The present invention relates to network management in general and in particular to networks employing pervasive computing devices with limited storage capabilities.
With the increasing mobility of today""s society, the demand for mobile computing capabilities has also increased. Many workers and professionals are downsizing their laptop computers to smaller palm-top or hand-held devices, such as personal digital assistants (PDAs). In addition, many people now utilize cellular telephones to access the Internet and to perform various other computing functions. Computing devices including, but not limited to, PDAs, cellular telephones, and computing devices utilized within appliances and automobiles are often collectively referred to as xe2x80x9cpervasivexe2x80x9d computing devices. Many hand-held computing devices utilize the Microsoft(copyright) Windows CE, 3Com Palm Computing(copyright), and Symbion Epoc platforms as well as web browsers such as HandWeb from SmartCode, Inc. and the Pocket Internet Explorer from Microsoft, Inc. As used herein, the term xe2x80x9cpervasive computing devicexe2x80x9d refers to a data processing system which may connect to different networks and is intended to include PDAs, laptop and portable computers, penbased portable computers, wireless telephones, smart phones, screenphones, copies and other office equipment, appliances, factory controllers, etc.
Unfortunately, as the size of pervasive computing devices has decreased, typically, the capabilities of the devices for stand alone operation have also decreased. Such devices generally have reduced amounts of memory, little or no permanent storage capabilities and no display or reduced size displays having reduced color capabilities and resolution. For example, many of the emerging pervasive computing devices do not execute applications locally on the device but, instead, obtain a menu of available services from a network server and then act as a portable network terminal for execution of the available applications. Such devices typically are highly portable and may connect to many different networks as the user moves throughout an operating environment.
It is well known in the art for a network terminal or networked computer to learn its Internet Protocol (IP) address upon booting. For example, using the Address Resolution Protocol (ARP) a machine publishes its Ethernet Media Access Control (MAC) address and an ARP server returns the IP address that should be used for subsequent IP transmissions. Such an address resolution model has further been used in newer protocols such as Dynamic Host Configuration Protocol (DHCP).
As described above, pervasive computing devices, however, may be less capable than even networked terminals. Certain pervasive computing devices typically require a description of the set of available services that the user may access from within the network environment in which the device currently resides (i.e., a services menu). Such a list of services may be provided, for example, as a Hyper-Text Markup Language (HTML) home page for networked computers, a Wireless Markup Language (WML) deck for smart phones and PDAs or a Speech Markup Language (SpeechML) or Voice Markup Language (VOXML) menu for voice-based devices. Thus, the services and mechanism for delivery may change from environment to environment and may further be limited depending on the type of pervasive computing device connecting to the network. Furthermore, unlike address resolution, the pervasive computing device is typically under the physical control of the end-user rather than an issuing authority and, therefore, the parameters of the device may be substantially more diverse than, for example, merely providing an IP address to an Ethernet adapter.
Currently, in order for a pervasive computing device to obtain a list of services, the device typically must have a priori knowledge of the environment in which it is operating to obtain the list from a predefined server. For example, a pervasive device would access a predefined Universal Resource Locator (URL) for the network to which it is connected to obtain the list of services. Alternatively, the networks to which the device may attach typically must be specifically configured to route special URLs to predefined servers. However, such systems may require knowledge at the device of the different URLs to access and knowledge of the network to which the device is connected or cooperation among service providers to agree on common treatment of these special URLs. Such restrictions may limit the usability of pervasive computing devices.
In light of the above discussion, a need exists for a user friendly mechanism by which pervasive computing devices may obtain a list of available services available to the devices which does not require a priori knowledge of the network environment by the pervasive computing device or extensive cooperation among service providers.
Accordingly, it is an object of the present invention to provide methods, systems and computer program products which can obtain a services menu without requiring prior knowledge of the location of the services menu.
It is a further object of the present invention to provide such methods, systems and computer program products that can automatically accommodate various types of hardware operating under different operating systems.
A still further object of the present invention is to provide methods, systems and computer program products which enhance the mobility of pervasive computing devices.
Another object of the present invention is to provide methods, systems and computer program products which are user friendly and require no user setup.
These and other objects can be provided, according to the present invention, by methods, systems and computer program products which automatically obtain a service menu for a data processing system, such as a pervasive computing device, connected to a network by broadcasting to a plurality of devices connected to the network, a Request Services Menu message. The Request Services Menu message provides information about the pervasive computing device broadcasting the message. In response to the broadcast Request Services Menu message, a services menu associated with the pervasive computing device is received and provided to a user of the pervasive computing device.
By broadcasting a request for a services menu to the network, the pervasive computing device does not have to know in advance the location of the server which provides the services menu to the device. Furthermore, because the services menu is provided in response to a specific request, rather than a general HTTP request for a URL, the request may be broadcast onto the network. Devices which cannot or need not respond to the request may ignore the request. Thus, the present invention provides for obtaining a services menu for a pervasive computing device without requiring the device to know in advance the location from which the services menu is to be obtained. Accordingly, a user of the device may simply connect to the network and the services menu may be automatically obtained without requiring the user to know the specifics of the network configuration to which the device is attached.
In a further embodiment of the present invention, the services menu received in response to the broadcast Request Services Menu message is a pointer to a services menu file. In such a case, the device may request the services menu file utilizing the pointer received in response to the broadcast Request Services Menu message.
In another embodiment of the present invention, the Request Services Menu message includes at least one of information regarding a user of the pervasive computing device, the type of pervasive computing device and/or the connection between the pervasive computing device and the network. In such a case, a pointer to a services menu file or a services menu file may be selected based on one or more of the information regarding a user of the pervasive computing device, the information regarding the type of pervasive computing device and/or the information regarding the connection between the pervasive computing device and the network included in the Request Services Menu message. In response to the broadcast Request Services Menu message, the selected pointer to a services menu is transmitted to the pervasive computing device.
In a particular embodiment of the present invention, the pointer is a Universal Resource Locator (URL).
In a further aspect of the present invention, a services menu or pointer to a services menu is generated for transmission to the pervasive computing device in response to receiving a broadcast Request Services Menu message from the pervasive computing device. The generated services menu or pointer is then transmitted to the pervasive computing device. In particular, the services menu or pointer may be generated by accessing a services menu database. Where the Request Services Menu message includes at least one of, information regarding a user of the pervasive computing device, the type of pervasive computing device and/or the connection between the pervasive computing device and the network, the services menu database may be accessed based on the provided information regarding a user of the pervasive computing device, the type of pervasive computing device and/or the connection between the pervasive computing device and the network included in the Request Services Menu message.
In still another embodiment of the present invention, the services menu received by the pervasive computing device may include pointers to additional services menus accessible to the pervasive computing device. Furthermore, at least one of the services associated with the services menu received by the pervasive computing device may be a telephony service. Also, the services menu received by the pervasive computing device may include credentials for presentation by the pervasive computing device to access services identified in the services menu. In addition, the received services menu may be encrypted. In such a case, the pervasive computing device may decrypt the received services menu.
In another embodiment of the present invention an update of the services menu is provided by receiving a Services Menu Update message containing information associated with a modification to the services menu of the pervasive computing device. The services menu displayed to the user is then updated to incorporate the modifications to the services menu contained in the Services Menu Update message. Preferably, the Services Menu Update message contains at least one of information regarding a delete operation, information regarding an add operation and/or information regarding a replace operation. In a particular embodiment it is determined if a change to the services menu of the pervasive computing device has occurred and a Services Menu Update message is transmitted to the pervasive computing device if a change to the services menu of the pervasive computing device has occurred.
By providing an update procedure to the services menu of the pervasive computing device, the present invention may assure that the user is displayed a current services menu. Furthermore, such an ability allows for the control of the services menu presented to a user, for example, to add and remove services which are only temporarily accessible to the user or to present different services menus for different user environments.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and/or computer program products are also provided.